1. Field of the Invention
The present invention relates generally to data protection and more particularly to a system and method for solving the problem of sector slipping in a Storage Area Network.
2. Description of the Prior Art
Recent developments in storage solutions have led to the increased utilization by enterprises of Storage Area Networks (SANs) to provide'storage consolidation, reliability, availability, and flexibility. Factors driving these developments include the increase in the amount of on-line data, data protection requirements including efficient and reliable data back-up, and rapidly increasing disk bit densities.
As illustrated in FIG. 1, an Information Technology (“IT”) Organization generally designated 100 includes a SAN 110 coupled between storage devices 120 and servers 130. A Local Area Network (“LAN”) 140 networks clients 150 to servers 130. The SAN 110 is conventionally a high-speed network that allows the establishment of direct connections between storage devices 120 and servers 130. In the illustrated IT Organization 100, the SAN 110 is shared between servers 130, and allows for the sharing of storage devices 120 between the servers 130 providing greater availability and reliability of storage.
Third party copy is a method of transferring data directly between storage devices 120 in a SAN 110 using a data mover 200 such as illustrated in FIG. 2. Data mover 200 may be disposed within a storage router or another SAN network component (not shown) or within a storage device such as disk array 220. The connection between the client or application server 210, 230 and the data mover 200 is conventionally a channel protocol like Small Computer System Interface (“SCSI”) or fibre channel connected directly to the storage devices 220 or storage device controllers (e.g. RAID controllers).
Data mover 200 is capable of initiating and controlling data movement on the SAN 110 at the direction of commands issued by other devices on the SAN 110. To initiate data transfer from a SAN source storage device, such as tape drive 240, to a SAN destination storage device, such as disk array 220, an application server such as server 210, issues a copy command to data mover 200. The application server 210 manages the control information for the data transfer while the data mover 200 performs the actual data transfer from device 240 to device 220. The application server 210 conventionally has ownership of a file system or database that resides on the SAN destination storage device 220.
As illustrated in FIG. 2, the storage devices 220 and 240 are coupled to the SAN 110, the SAN 110 including the data mover 200. Alternatively, and as illustrated in FIG. 3, the SAN source storage device, such as a tape drive 340, may be directly coupled to the SAN 110 through data mover 300. A proprietary system, such as illustrated in FIG. 4, includes a data mover 400 coupled between the source storage device 410 and the destination storage device 420. While the data movers 200, 300, and 400 have been illustrated as independent devices, it will be appreciated by those skilled in the art that data movers may be functionally implemented in storage device controllers.
Storage devices are conventionally designed to provide data to servers using one of two methods, either block-level or file-level access. Applications are optimized for either type of I/O access and both types of I/O access are usually supported within a customer site. File-level I/O is typically associated with LAN-based access while block-level access is associated with SAN-based access.
To initiate third party copy data transfers in the SAN 110, the client or application server 210 generally provides the data mover 200 (FIG. 2) with the addresses of the source and destination devices and a list of data extents that describe the destination location. In the case of a block-to-block data transfer, both source and destination extents are specified. The extents include the starting location of the data blocks and the number of blocks to be transferred.
For the purposes of the present specification, the destination device for the data movement is a block (disk) device on which a file system or database resides and the source of the data can be any block or stream device (a serial device, i.e., a tape drive).
Due to the capability of file systems and database management systems to reorganize or write to the data residing on the destination device asynchronously of the third party copy operation, there is considerable risk in moving data into a live file system or database. The potential error conditions that arise due to a reorganization of the destination device occur after an extent list initiated by a third party copy request has been generated and sent to the data mover 200. The potential error conditions are referred to as sector slipping events and manifest themselves as two error states on the destination block storage device.
A first sector slipping error state involves a movement of data or allocated space from the destination extents to another physical location (volume reorganization). As illustrated in FIG. 5 Volume A includes destination blocks 510 corresponding to destination extents that are to be written by a third party copy operation. Destination blocks 510 are shown as being initially located or allocated on Disk 1500. Some time after the list of data extents has been provided to data mover 200, but before the third party copy operation has completed, an error is detected on Disk 1500 which causes the volume manager to move all data from Disk 1500 to Disk 2530.
Since the third party copy operation has not yet completed and the destination blocks 510 have moved, there exists the possibility that the destination blocks 510 moved from Disk 1500 to Disk 2530 will not reflect all the data intended to be copied that is being written by the third party copy. Furthermore, the copy manager that is doing the block copy has no way of knowing that the reorganization is taking place and continues to move blocks into the destination blocks 510 on Disk 1500 rather than to blocks 540 on Disk 2530 even though the volume has been moved.
A second sector slipping error state involves the overwriting of data following a volume reorganization. With reference to FIG. 6, destination blocks 600, located on Disk 1610, are to be written by a third party copy operation. While the third party copy operation is in progress, the destination blocks may be concurrently written by application “A” data 620. This situation occurs generally due to a reallocation of disk space by an operation such as a disk optimization. Since the copy operation continues to write data to destination blocks 600, the data stored by application “A” may potentially be corrupted and unreliable.
What is needed is a system and method for solving the problem of sector slipping when writing data into a live environment.